26 research outputs found
Towards transactional memory for real-time systems
In this paper, we explore a new synchronization paradigm for real-time systems: transactional memory for real-time systems. Transactional memory is considered as a solution for parallel programs on a shared memory chip multiprocessor. It simplifies the programming model and increases the average case throughput. However, in real-time systems we are interested in the worst-case execution time. In this paper we show that for a periodic thread model the maximum number of transaction aborts can be bounded and the system is time predictable. Furthermore, we propose a possible hardware implementation in the context of a Java processor and show first results in a multiprocessor simulation.
Computational Abstraction Steps
In this paper we discuss computational abstraction steps as a way to create class abstractions from concrete objects, and from examples. Computational abstraction steps are regarded as symmetric counterparts to computational concretisation steps, which are well-known in terms of function calls and class instantiations. Our teaching experience shows that many novice programmers find it difficult to write programs that use abstractions which materialise to concrete objects much later in the development process. As the contribution of this paper we propose to initiate a programming process by creating or capturing concrete values, objects, or actions. As the next step, some of these are lifted to a higher level by computational means. In the object-oriented paradigm the target of such steps is classes. We hypothesise that the proposed approach primarily will be beneficial to novice programmers or during the exploratory phases of a program development process. In some specific niches it is also expected that our approach will be a help to professional programmers.
Mapping and Visiting in Functional and Object-oriented Programming
Mapping and visiting represent different programming styles for traversals of collections of data. Mapping is rooted in the functional programming paradigm, and visiting is rooted in the object-oriented programming paradigm. This paper explores the similarities and differences between mapping and visiting, seen across the traditions in the two different programming paradigms. The paper is concluded with recommendations for mapping and visiting in programming languages that support both the functional and the object-oriented paradigms